package com.link.base.base.mpconfig.service;

import com.link.base.base.mpconfig.model.Mp;
import com.link.base.base.mpconfig.model.MpInnerMenu;
import com.link.core.basic.service.BasicService;
import com.link.core.basic.service.BasicServiceException;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

/**
 * @author 闫有霞
 * created: 2018-11-19
 * comments: 小程序配置信息
 */

public interface MpService extends BasicService<Mp> {

    /**
     * 根据配置的加密id,获取配置信息
     * @author LiQun
     * @date 2018/11/19
     * @param entity 小程序信息
     * @return 返回查询到的小程序信息
     * @throws Exception 异常信息
     */
    public Mp queryMpInfoByEncryptionId(Mp entity) throws Exception;


    /**
     *@createdBy 闫有霞
     *@date 2018/11/30
     *@methods: setMianFlag
     *@param: mp
     *@return: void
     *@description: 更新数据根据ID进行将其他的设为非主要的
     **/

    public void updateMainFlag(Mp mp)throws Exception;

    /**
     * @createdBy 闫有霞
     * @date 2018/12/1
     * @methods: setMainFlag
     * @param: Mp mp
     * @return: void
     * @description: 设为主要的
     **/
    @Transactional(rollbackFor = BasicServiceException.class)
    public void setMainFlag(Mp mp)throws Exception;

    /**
     * 查询当前小程序对应的客服电话
     * @author KuangRuifeng
     * @date 2018年12月14日
     * @return 电话
     * @throws Exception 异常信息
     */
    String queryCostomPhone() throws Exception;

    /**
     *@createdBy 闫有霞
     *@date 2018/12/20
     *@methods: queryMenuByMpId
     *@param: String  mpId  小程序ID
     *@return: 菜单list
     *@description: 获取小程序下配置的菜单
     **/
    public List<MpInnerMenu> queryMenuByMpId(Long mpId) throws Exception;

    /**
     * 根据配置的appId,获取配置信息
     * @author 闫有霞
     * @date 2018/11/19
     * @param entity 小程序信息
     * @return 返回查询到的小程序信息
     * @throws Exception 异常信息
     */
    public Mp queryMpInfoByAppId(Mp entity) throws Exception;


    /**
     * @createdBy 闫有霞
     * @date 2018/12/25
     * @methods: updateLeaveInfoFlag
     * @param:
     * @return:
     * @description: 更新是否强制留资
     **/
    public void updateLeaveInfoFlag(Mp mp) throws Exception;

    /**
     * @createdBy 闫有霞
     * @date 2018/12/25
     * @methods: updateShareFriendFlag
     * @param:
     * @return:
     * @description: 是否分享朋友圈
     **/
    public void updateShareFriendFlag(Mp mp) throws Exception;

}
